1 package uba.db.sql.language;
2
3 import org.apache.commons.lang.builder.EqualsBuilder;
4 import org.apache.commons.lang.builder.HashCodeBuilder;
5
6 /***
7 * Representa una expresión que hace referencia al valor de una columna.
8 *
9 * @version $Revision: 1.9 $
10 */
11 public class ColumnName implements ColumnReference {
12 private String columnName;
13
14 /***
15 * Representa una referencia a una columna, en una tabla.
16 *
17 * @param columnName
18 * nombre de la columna.
19 */
20 public ColumnName(String columnName) {
21 this.columnName = columnName;
22 }
23
24 /***
25 * @see java.lang.Object#equals(java.lang.Object)
26 */
27 public boolean equals(Object obj) {
28 return EqualsBuilder.reflectionEquals(this, obj);
29 }
30
31 /***
32 * @see java.lang.Object#hashCode()
33 */
34 public int hashCode() {
35 return HashCodeBuilder.reflectionHashCode(this);
36 }
37
38 /***
39 * @see uba.db.sql.language.SingleValue#accept(uba.db.sql.language.Visitor)
40 */
41 public void accept(Visitor visitor) {
42 visitor.visitColumnName(this);
43 }
44
45 /***
46 * @see uba.db.sql.language.SingleValue#valueWith(uba.db.sql.language.EvaluationContext)
47 */
48 public Object valueWith(EvaluationContext context) {
49 return context.valueOf(this);
50 }
51
52 /***
53 * Retorna el nombre de la columna como un {@link String}.
54 */
55 public String nameAsString() {
56 return columnName;
57 }
58
59 /***
60 * <b>IMPORTANTE:</b> En java el método <i>toString()</i> debe utilizarse para
61 * debugging solamente, para obtener el nombre de la columna utilizar el método
62 * {@link #nameAsString()}.
63 *
64 * @see java.lang.Object#toString()
65 */
66 public String toString() {
67 return columnName;
68 }
69
70 }